
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMediaPlayer>
#include <QStringList>
#include <QDir>
#include<QMediaPlaylist>
#include<QMediaPlayer>

#include<QNetworkAccessManager>
#include<QVariant>
#include<QByteArray>
#include<QJsonParseError>
#include<QJsonDocument>
#include<QJsonObject>
#include<QJsonArray>
#include<QUrl>
#include<QPixmap>
#include<QSize>
#include<QVector>
#include<QNetworkAccessManager>
#include<QNetworkReply>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow

{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    bool isPlay = false;
    QString MusicPath = "C:\\Users\\86198\\Desktop\\音乐";
    QStringList fileList;//文件名称
    QMediaPlaylist *PlayerList;
    QMediaPlayer *Player;
    QString durationTime;
    QString positionTime;

    QNetworkAccessManager * network_manager;
    QNetworkRequest * network_request;

    QVector<QString> m_Vectorlist;      //保存hash
    QVector<QString> m_ID;              //保存album_id
    QVector<QString> m_Jpg;            //保存img
    QNetworkAccessManager * network_manager2;
    QNetworkRequest * network_request2;
    QNetworkAccessManager * network_manager3;
    QNetworkRequest * network_request3;

    QMap<int,QString> lrcMap;

private slots:
    void init() ;



    void SlotButtonStart();
    void SlotButtonPrevious();
    void SlotButtonNext();
    void replyFinished(QNetworkReply *reply);
    void replyFinished2(QNetworkReply *reply);
    void replyFinished3(QNetworkReply *reply);
    void search(QString str);

    void parseJson(QString json);
    void parseJsonSongInfo(QString json);
    void on_pushButton_6_clicked();

    void on_pushButton_7_clicked();



    void on_pushButton_41_clicked();

    void onDurationChanged(qint64 duration); //文件时长变化，更新当前播放文件名显示
    //播放文件数据总大小的信号， 它可以获得文件时间长度。
    void onPositionChanged(qint64 position); //当前文件播放位置变化，更新进度显示
    //播放到什么位置的信号， 参数是以毫秒来计算的。





    void on_horizontalSlider_sliderReleased();

    void on_horizontalSlider_2_valueChanged(int value);
    void on_tableWidget_cellDoubleClicked(int row, int column);

    void on_pushButton_10_clicked();
};

#endif // MAINWINDOW_H
